$(function () {
  // 页面数据动态渲染
  var currentPage = 1;
  var pageSize = 4;
  function render() {
    $.ajax({
      type: "get",
      url: "/category/querySecondCategoryPaging",
      data: {
        page: currentPage,
        pageSize: pageSize,
      },
      dataType: "json",
      success: function (res) {
        console.log(res);
        var str = template('tmp', res);
        $('tbody').html(str);
        setPage(res.total);
      }
    })
  };
  render();

  // 分页插件
  function setPage(total) {
    $("#paginator").bootstrapPaginator({
      bootstrapMajorVersion: 3,//默认是2，如果是bootstrap3版本，这个参数必填
      currentPage: currentPage,//当前页
      totalPages: Math.ceil(total / pageSize), //总页数(总数据量/每页数据量)
      onPageClicked: function (event, originalEvent, type, page) {
        //为按钮绑定点击事件 page:当前点击的按钮值
        currentPage = page;
        //重新渲染
        render();
      }
    })
  };

  //3-下拉列表填充 
  //   1- 获取一级分类的数据
  //   2- 配合模板引擎进行渲染
  $.ajax({
    type: "get",
    url: "/category/queryTopCategoryPaging",
    data: {
      page: 1,
      pageSize: 100,
    },
    dataType: "json",
    success: function (res) {
      console.log(res);
      var str = template('tmp-one', res);
      $('.add-one-list').html(str);
    }
  });

  // 4- 下拉列表选中效果 (事件委托)
  // 1- 点击a标签， 获取a标签的文本，赋值给按钮的文本 
  // 2- 获取a标签的data-id属性， 赋值给隐藏域 
  $('.add-one-list').on('click', 'a', function () {
    $('.one-span').text($(this).text());
    $('#categoryId').val($(this).attr('data-id'));
    // 下拉列表选中之后 恢复样式为初始状态
    $(".add-form").data('bootstrapValidator').updateStatus('categoryId', 'VALID');
  });

  // 5-图片上传功能
  $("#file").fileupload({
    dataType: "json",
    //e：事件对象
    //data：图片上传后的对象，通过data.result.picAddr可以获取上传后的图片地址
    done: function (e, data) { //图片上传完成，服务器返回图片地址时执行 
      console.log(data.result);
      // 返回的图片地址
      var img_url = data.result.picAddr;
      // 进行图片预览
      $('#img').attr('src', img_url);
      // 把返回的图片地址给到图片的隐藏域
      $('#brandLogo').val(img_url);
      // 图片上传完后 恢复图片样式为初始化状态
      $(".add-form").data('bootstrapValidator').updateStatus('brandLogo', 'VALID');

    }
  });

  // 6-表单校验
  //使用表单校验插件
  $('.add-form').bootstrapValidator({
    //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
    excluded: [':disabled'],

    //2. 指定校验时的图标显示，默认是bootstrap风格
    feedbackIcons: {
      valid: 'glyphicon glyphicon-ok',
      invalid: 'glyphicon glyphicon-remove',
      validating: 'glyphicon glyphicon-refresh'
    },

    //3. 指定校验字段
    fields: {
      //校验用户名，对应name表单的name属性
      categoryId: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请选择一级分类'
          },
        }
      },
      brandName: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入二级分类名称'
          },
        }
      },
      brandLogo: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请上传图片'
          },
        }
      },
    }
  });

  // 8- 添加 二级分类数据 
  // 1- 点击添加按钮，在表单数据合理的情况下，发送请求给后台，进行添加
  // 2- 添加完成后，页面重新渲染，隐藏模态框， 表单重置
  $(".add-form").on('success.form.bv', function (e) {
    e.preventDefault();
    //使用ajax提交逻辑
    $.ajax({
      type: "post",
      url: "/category/addSecondCategory",
      data: $('.add-form').serialize(),
      dataType: 'json',
      success: function (res) {
        console.log(res);
        var validator = $(".add-form").data('bootstrapValidator');
        validator.resetForm(true);
        // 页面数据重新渲染
        render();
        // 隐藏模态框
        $('.two-modal').modal('hide');
        // 手动清楚下拉列表和图片内容
        $('.one-span').text('请选择一级分类');
        $('#img').attr('src', './images/none.png');
      }
    });
  });
})